"""
工厂模式:
    定义：
    1.将对象的创建由原生类创建交由特定的工厂方法创建
    优点：
    1.大批量的创建对象的时候有统一的入口，易于代码的维护
    2.当发生修改时，仅需要修改工厂类的创建方法即可
    3.符合现实世界的模式，即由工厂来制作产品(对象)
"""


class Person:
    pass


class Student(Person):
    pass


class Teacher(Person):
    pass


class Worker(Person):
    pass


class PersonFactory:
    def get_person(self, p_type):
        """
        根据传入的对象类型获取具体的对象
        :param p_type: 对象类型
        :return: 对象
        """
        if p_type == 'w':
            return Worker()
        elif p_type == 's':
            return Student()
        else:
            return Teacher()


pf = PersonFactory()

student = pf.get_person("s")
worker = pf.get_person("w")
teacher = pf.get_person("t")
